local Lidar = Instance.new("Tool", owner.Backpack); Lidar.Name = "Lidar"; local Handle = Instance.new("Part", Lidar); Handle.Size = Vector3.one; Handle.Name = "Handle"; Handle.CanCollide = false; -- local Parts = 20 local Lerp = function(a,b,t) return Vector2.new(a,0):Lerp(Vector2.new(b,0),t).X; end local maxDist = 2300 local mainPart = Instance.new("Part", workspace.Terrain) mainPart.Anchored = true; mainPart.Size = Vector3.zero; function check() if mainPart == nil then mainPart = Instance.new("Part", workspace.Terrain) mainPart.Anchored = true; mainPart.Size = Vector3.zero; end end Lidar.Activated:Connect(function() task.spawn(function() for X = -Parts, Parts do for Z = -Parts, Parts do local Prms = RaycastParams.new(); Prms.FilterDescendantsInstances = {workspace.Terrain, Handle, owner.Character} Prms.FilterType = Enum.RaycastFilterType.Blacklist; local Pos = Handle.Position; local Angle = (Handle.CFrame:ToWorldSpace(CFrame.new(Z/2, (X/2)+5, -10)).Position - Pos).Unit * 2300 local Result = workspace:Raycast(Pos, Angle,Prms) if Result then check() local Debug = Instance.new("Part", workspace.Terrain); Debug.CanCollide = false; Debug.Color = Color3.new(0, 1, 0); Debug.Anchored = true; Debug.CFrame = CFrame.new(Pos, Result.Position):ToWorldSpace(CFrame.new(0, 0, -(Result.Position - Pos).Magnitude/2)) Debug.Size = Vector3.new(0.1, 0.1, (Result.Position - Pos).Magnitude) Debug.Transparency = 0.5; Debug.CanQuery = false; Debug.CanTouch = false; Debug.CastShadow = false; Debug.Material = Enum.Material.Neon local Point = Instance.new("SphereHandleAdornment", mainPart) Point.Adornee = mainPart Point.CFrame = CFrame.fromMatrix(Result.Position, -Vector3.zAxis:Cross(Result.Normal), Result.Normal, Vector3.zAxis); Point.Color3 = Result.Instance.Color; Point.Radius = 1/20 local Tween = game:GetService("TweenService"):Create(Debug, TweenInfo.new(1), {Transparency = 1}) Tween:Play() Tween.Completed:Once(function() Debug:Destroy() end) end end task.wait() end end) end)